package miniBanco.Handler;

import java.awt.BorderLayout;
import java.awt.Component;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import basics.TableManager;
import miniBanco.Core.*;
import miniBanco.Gui.*;

public class HandlerUsuariosMainFrame {
	Component lastComponent = null;
	HandlerMain mainHandler;
	UsuarioBO u;
	//Components
	UsuarioMainFrameButton usuarioMainFrameButton;

	public HandlerUsuariosMainFrame(HandlerMain mainHandler,UsuarioBO u)
	{
		this.u = u;
		this.mainHandler = mainHandler;
	}
	
	public void Show()
	{
		usuarioMainFrameButton = new UsuarioMainFrameButton();	
		AgregarComponente(new JPanel());
		JLabel label = new JLabel("Bienvenido usuario");
		mainHandler.frame.add(label,BorderLayout.NORTH);
		//mainHandler.frame.add(usuarioMainFrameButton,BorderLayout.CENTER);
		mainHandler.frame.add(usuarioMainFrameButton,BorderLayout.SOUTH);
		
		//Handler de los botones
		usuarioMainFrameButton.getBtnBorrarTablas().addActionListener(new ActionListener() {
			
			@Override
			public void actionPerformed(ActionEvent e) {
				TableManager.getInstance().DropTablasSistema();
				JOptionPane.showMessageDialog(null, "Se borraron las tablas con exito");
			}
		});
		usuarioMainFrameButton.getBtnCrearTablasSistema().addActionListener(new ActionListener() {
			
			@Override
			public void actionPerformed(ActionEvent e) {
				TableManager.getInstance().CrearTablasSistema();
				JOptionPane.showMessageDialog(null, "Se crearon las tablas con exito");
			}
		});
		usuarioMainFrameButton.getBtnVerErrores().addActionListener(new ActionListener() {
			
			@Override
			public void actionPerformed(ActionEvent e) {
				ErroresGrid erroresGrid = HandlerErrores.getInstance().verErrores();
				AgregarComponente(erroresGrid);
			}
		});
		usuarioMainFrameButton.getBtnVerClientes().addActionListener(new ActionListener() {
			
			@Override
			public void actionPerformed(ActionEvent e) {
				BtnVerClientesClick();
			}
		});		
		
	}
	private void BtnVerClientesClick()
	{
		HandlerClientes handlerClientes = new HandlerClientes(this);
		handlerClientes.Show();
	}
	public void AgregarComponente(Component c)
	{
		if(lastComponent != null)
		{
			mainHandler.frame.remove(lastComponent);
		}
		mainHandler.frame.add(c,BorderLayout.CENTER);
		lastComponent = c;
		mainHandler.frame.validate();
		mainHandler.frame.repaint();
	}
}
